package com.siao.starling.mvc.core
{
	import com.siao.starling.mvc.Controller;
	import com.siao.starling.mvc.Model;
	import com.siao.starling.mvc.View;
	
	/**
	 * 上下文关联接口
	 * @author SiaoLeon
	 */
	public interface IContext
	{
		/**
		 * 添加模型
		 * @param model 模型类，需继承 Model 类
		 */
		function addModel(model:Class):void;
		
		/**
		 * 获取模型
		 * @param model 模型类，需继承 Model 类
		 * @return
		 */
		function getModel(model:Class):Model;
		
		/**
		 * 移除模型
		 * @param model 模型类，需继承 Model 类
		 */
		function removeModel(model:Class):void;
		
		/**
		 * 清除所有模型
		 */
		function clearModel():void;
		
		/**
		 * 添加视图
		 * @param view 视图对象
		 */
		function addView(view:View):void;
		
		/**
		 * 移除视图
		 * @param view 视图对象
		 */
		function removeView(view:View):void;
		
		/**
		 * 清除所有视图
		 */
		function clearView():void;
		
		/**
		 * 添加控制器
		 * @param controller 控制器对象
		 */
		function addController(controller:Controller):void;
		
		/**
		 * 移除控制器
		 * @param controller 控制器对象
		 */
		function removeController(controller:Controller):void;
		
		/**
		 * 清除所有控制器
		 */
		function clearController():void;
	
	}
}
